using RAG.Application.Dtos;
using RAG.Application.Commands;

namespace RAG.Application.Interfaces;

/// <summary>
/// 问答管理服务接口
/// </summary>
public interface IAppQAManagementService
{
    /// <summary>
    /// 获取问答列表
    /// </summary>
    Task<ApiResult> GetQAListAsync(Guid userId, QAListQueryDto query);

    /// <summary>
    /// 获取问答详情
    /// </summary>
    Task<ApiResult> GetQADetailAsync(Guid userId, Guid qaId);

    /// <summary>
    /// 删除问答
    /// </summary>
    Task<ApiResult> DeleteQAAsync(Guid userId, Guid qaId);

    /// <summary>
    /// 批量删除问答
    /// </summary>
    Task<ApiResult> BatchDeleteQAAsync(Guid userId, List<Guid> qaIds);

    /// <summary>
    /// 获取问答统计
    /// </summary>
    Task<ApiResult> GetQAStatisticsAsync(Guid userId);

    /// <summary>
    /// 导出问答数据
    /// </summary>
    Task<ApiResult> ExportQADataAsync(Guid userId, ExportQADto exportDto);

    /// <summary>
    /// 搜索问答
    /// </summary>
    Task<ApiResult> SearchQAAsync(Guid userId, string keyword, int page = 1, int pageSize = 10);
}
